#include <cstdint>
#include <list>
#include <queue>
#include <vector>

#include <logger.h>

int main()
{
    std::queue<int32_t> q({1, 2, 3, 4});
    while (!q.empty()) {
        LOG2SO(INFO) << q.front();
        q.pop();
    } // 1 2 3 4

    std::list<int32_t> v({1, 2, 3});
    for (auto it = v.begin(); it != v.end(); it++) {
        LOG2SO(INFO) << *it;
    } // 1 2 3

    std::deque<int32_t> dq({});
    LOG2SO(INFO) << dq.size(); // 0

    std::deque<int32_t> dq2({{}});
    LOG2SO(INFO) << dq2.size(); // 1

    struct Object {
        std::deque<int32_t> dq{{{}}};
    } o;
    LOG2SO(INFO) << o.dq.size(); // 1
    return 0;
}
